﻿_global.cameraFlag = true;
_global.micFlag = true;
_global.camera;
_global.mic;
_global.videoFlag = true;
_global.avStream = new NetStream(nc);

/**
 * @des 打开摄像头
 * @param w 摄像头的采集宽度
 * @param h 摄像头的采集高度
 */
function openCamera(w, h) {
	// 激活摄像头
	_global.camera = Camera.get();
	
	// 设置采集模式
	_global.camera.setMode(w, h, 15, true);
	
	// 设置图像质量
	_global.camera.setQuality(0, 100);
	
	// 指定调用camera.onActivety(true)所需的移动量
	_global.camera.setMotionLevel(10, 500);
	
	// 重置加载图像标志
	_global.videoFlag = true;
	
	/**
	 * @des 当检测到运动量时再加载视频
	 *      防止加载图像时出现黑屏的现象
	 */
	_global.camera.onActivity = function(mode) {
		if (mode && _global.videoFlag) {
			localVideo.smoothing = true;
			localVideo.clear();
			localVideo.attachVideo(_global.camera);
			
			_global.videoFlag = false;
		}
	}
}


/**
 * @des 打开麦克
 * @param flag 是否采集麦克
 */
function openMic(flag) {
	// 激活麦克
	_global.mic = Microphone.get();
	
	// 设置捕获频率，音頻小了反而會增加延遲
	_global.mic.setRate(44);
	
	// 打开回声抑制
	_global.mic.setUseEchoSuppression(true);
	
	if (flag) {
		// 加载音频流
		_global.avStream.attachAudio(_global.mic);
		// 广播stream流
		_global.avStream.publish(memberId);
	} else {
		// 取消加载音频流
		_global.avStream.attachAudio(null);
		_global.avStream.publish(false);
	}
}
 

// 视频控制
ctrlCamera.onPress = function() {
	if (_global.cameraFlag) {
		openCamera(160, 120);
		
		// 加载视频流
		_global.avStream.attachVideo(_global.camera);
		
		// 广播stream流
		_global.avStream.publish(memberId);
		
		ctrlCamera.gotoAndStop(2);
		_global.cameraFlag = false;

	} else {
		// 关闭本地视频窗口
		localVideo.attachVideo(null);
		localVideo.clear();
		_global.avStream.attachVideo(null);
		_global.avStream.publish(false);
		
		this.gotoAndStop(1);
		_global.cameraFlag = true;
	}
};

// 音视控制
ctrlMic.onRelease = function() {
	if (_global.micFlag) {
		openMic(true);
		
		this.gotoAndStop(2);
		_global.micFlag = false;
	} else {
		openMic(false);
		
		this.gotoAndStop(1);
		_global.micFlag = true;
	}
};